home *** CD-ROM | disk | FTP | other *** search
Makefile | 1992-11-19 | 9.1 KB | 320 lines |
- # ###################################################################### #
- # The FEEL makefile... #
- # ###################################################################### #
-
- #
- # $Id: Makefile,v 1.8.1.3 1992/06/18 19:45:13 pab Exp $
- #
-
- ##########################################################################
- # Customisation section... #
- ##########################################################################
-
- # Edit the following for your favourite machine.
-
- # Where Src directory lives
- BASE = /net/brad/denton_export/denton/You/NewYou
-
- # Feel knows about the systems below:
- # Stardent RS6000 Gould Sun4 Sun3 Clipper Vax Alliant Meiko 386
-
- # Here is some info in case you have something different:
- # WITH_SYSTEMV_SOCKETS - System V IP communication
- # WITH_BSD_SOCKETS - BSD IP communication (4.3, or see defs.h)
- # WITH_SYSTEMV_SIGNALS - System V signalling
- # WITH_BSD_SIGNALS - BSD signalling
- # DONT_HAVE_STDLIB_H - half-hearted ANSI without stdlib.h
- # ALIGN8 - if the machine is fussy about 8 byte alignments, e.g., doubles
- # TRAP_ALL - vauge attempt to catch segvs, buses, etc. implied by
- # MACHINE=SYSTEMV
- # Architecture and machine type...
- # MACHINE is ANY,BSD or SystemV.
- # ANY is any 'reasonable' architecture --- things that run UNIX, and many others
- # BSD is supported on any machine with a *-switch.s file in this
- # directory. See the note in the manual for what it does, and how to port it.
- # SystemV is for sun3/4, Stardents and Alliant concentrix machines
- # It ought to work for any UNIX machine that has shared memory primitives
- # and that BSD config. works for.
- # BTW, BSD works on MSDOS boxes(!)
- # Systems not listed but have worked in the 'ANY' config:
- # DEC MIPS (try hacking the ard-switch code for BSD version)
- #
-
- # Extra goodies, won't necesarily work
- # -DBCI Want a bytecode interpreter?
- # -DLOWTAGINTS Low tag integers kind of work,
- # but break the addons code (and maybe other things)
- # READLINE - used to work. Bit rot may have set in here.
-
- # common options
-
- # how to optimise your code
- STDOFLAGS = # -DDEBUG
-
- # everybody needs these
- STDFLAGS = -DWITH_FUDGE
-
- # Stardent
- MFLAGS = -DWITH_SYSTEMV_SOCKETS \
- -DDONT_HAVE_STDLIB_H -DBCI -DWITH_SYS_TIMES
- OFLAGS = -O -inline
- MACHINE = SYSTEMV # BSD # Can be SYSTEMV
- ARCH = ard
- CC = cc
- LIBS = -lm
-
- # Sun4
- #MFLAGS = -DWITH_SYSTEMV_SOCKETS -DDONT_HAVE_STDLIB_H -DBCI -DALIGN8 -DWITH_BSD_SIGNALS
- #OFLAGS = -g
- #MACHINE = BSD #or SYSTEMV, for the keen
- #ARCH = sun4
- #CC = gcc
- #LIBS = -lm
-
- # s4gc (Sun4 with compacting garbage collector)
- #MFLAGS = -DWITH_SYSTEMV_SOCKETS -DDONT_HAVE_STDLIB_H -DBCI -DALIGN8 -DWITH_BSD_SIGNALS -DDGC
- #OFLAGS = -g
- #GCOBJECTS = ../d-gc/gc.o
- #MACHINE = BSD #or SYSTEMV, for the keen
- #ARCH = s4gc
- #CC = gcc
- #LIBS = -lm
-
- # RS6000
- #MFLAGS = -DWITH_SYSTEMV_SOCKETS \
- # -DWITH_SYSTEMV_SIGNALS -DTRAP_ALL -D_ALL_SOURCE
- #MACHINE = ANY
- #ARCH = any
- #CC = xlc
- #LIBS = -lm
-
- # Gould
- #MFLAGS = -DWITH_BSD_SIGNALS \
- # -DDONT_HAVE_STDLIB_H -DALIGN8
- #MACHINE = ANY
- #ARCH = any
- #CC = gcc
- #LIBS = -lm
-
-
- # Sun3
- #MFLAGS = -DWITH_SYSTEMV_SOCKETS -DDONT_HAVE_STDLIB_H -DDONT_HAVE_STDLIB_H
- #MACHINE = BSD
- #ARCH = sun3
- #CC = gcc
- #LIBS = -lm
-
- # Clipper
- #MFLAGS = -DWITH_BSD_SIGNALS -DALIGN8
- #MACHINE = BSD
- #ARCH = clip
- #CC = ncc
- #LIBS = /lib/crt0.o
-
- # Vax
- #MFLAGS = -mg -O -DDONT_HAVE_STDLIB_H -DBCI
- #MACHINE = ANY
- #ARCH = any
- #CC = gcc
- #LIBS = -lmg
-
- # Alliant
- #MFLAGS = -DWITH_BSD_SIGNALS -DWITH_BSD_SOCKETS -DALIGN8
- #MACHINE = SYSTEMV
- #ARCH = i860
- #CC = fxc
- #LIBS = -lm
-
- # Meiko
- # MFLAGS =
- # MACHINE = ANY
- # CC = mcc
- # LIBS = -lm
- # EXTRASRCS =
- # EXTRAOBJS =
-
- # 386
- # ...
- #MFLAGS = -DWITH_SYSTEMV_SOCKETS \
- # -DDONT_HAVE_STDLIB_H -DBCI
- #OFLAGS = -O
- #MACHINE = BSD
- #ARCH = 386
- #CC = gcc #-43
- #LIBS = -lm
-
- # i860
- # Not an alliant?
- # Try MACHINE=BSD, then change the shared memory primitives around
- #
-
- # ################################################################### #
- # Sundry constants #
- # ################################################################### #
- LEX = flex
- YACC = bison -y -t
-
- # Local module path
-
- MODULE_PATH = ${BASE}/Modules/
-
- # Semaphoring...
- # Hardware semaphores are OK, but
- SEMAPHORES = SOFTWARE
-
- # Do the business...
-
- # ###################################################################### #
- # Working section... #
- # ###################################################################### #
-
- LOAD_PATH_NAME = FEEL_LOAD_PATH
-
- MACHINEABBREV = ${ARCH}
- DATE = `date`
-
- # invent flags
- FLAGS = ${STDFLAGS} ${STDOFLAGS} ${MFLAGS} ${OFLAGS}
- # Reader specific sources...
-
- READERSOURCES = lex.yy.c y.tab.c alloca.c
-
- READEROBJECTS = lex.yy.o y.tab.o alloca.o
-
- # Default Elvira sources...
-
- ELVIRASOURCES = initelv.c
-
- ELVIRAOBJECTS = initelv.o
-
- # Garbage collector sources
-
- GCOBJECTS =
-
- # Main sources...
-
- SOURCES = copyalloc.c copy.c arith.c basic.c chars.c error.c \
- main.c modules.c print.c read.c set.c streams.c \
- table.c vectors.c bootstrap.c lists.c listops.c \
- class.c slots.c ngenerics.c \
- symboot.c modboot.c toplevel.c root.c specials.c \
- calls.c ccc.c macros.c system.c semaphores.c state.c \
- format.c sockets.c sio.c modops.c lamport.c bvecs2.c
-
- OBJECTS = copyalloc.o copy.o arith.o basic.o chars.o error.o \
- main.o modules.o print.o read.o set.o streams.o \
- table.o vectors.o bootstrap.o lists.o listops.o \
- class.o slots.o ngenerics.o \
- symboot.o modboot.o toplevel.o root.o specials.o \
- calls.o ccc.o macros.o system.o semaphores.o state.o \
- format.o sockets.o sio.o modops.o lamport.o bvecs2.o
-
- HDRS = bootstrap.h generics.h modules.h specials.h toplevel.h \
- calls.h global.h ngenerics.h state.h vectors.h \
- ccc.h lamport.h objects.h structs.h version.h \
- class.h lex_global.h root.h symboot.h y.tab.h \
- copy.h listops.h runtime.h syssockets.h funcalls.h weak.h \
- defs.h lists.h semaphores.h system_p.h yyfudge.c allocate.h \
- error.h macros.h sio.h system_t.h bvf.h modops.h garbage.h \
- format.h modboot.h slots.h table.h threads.h iset.h sockets.h \
- interpret.h bytecodes.h
-
- COSOURCES = ${MACHINEABBREV}-switch.s threads.c
-
- COOBJECTS = ${MACHINEABBREV}-switch.o threads.o
-
- DISTRIBCO = sun3-switch.s sun4-switch.s ard-switch.s clip-switch.s any-switch.s i860-switch.s \
- 386-switch.s Makefile Makefile.386
-
- KERNELLISP= defs.em extras0.em initcode.em macros0.em standard0.em sockets.em semaphores.em bitvecs.em
-
-
- # Lisp object file
-
- LISPOBJECTS = LispSrc/all-lisp.o
-
- ISOURCES = interpret.c
- IHDRS = bytecodes.h interpret.h
- IOBJECTS = interp.o
- # Lisp object file
-
- LISPOBJECTS = LispSrc/all-lisp.o
-
- you: ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${ELVIRAOBJECTS} ${IOBJECTS} ${GCOBJECTS}
- -touch you
- rm you
- ${CC} -o you ${OBJECTS} ${COOBJECTS} ${GCOBJECTS}\
- ${READEROBJECTS} ${IOBJECTS} ${ELVIRAOBJECTS} ${LIBS}
- echo
-
- proyou: ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${ELVIRAOBJECTS}
- ${CC} -p -o proyou ${OBJECTS} ${COOBJECTS} \
- ${READEROBJECTS} ${ELVIRAOBJECTS} ${LIBS}
- echo
-
- elvira: ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${IOBJECTS} ${GCOBJECTS}
- ld -r -o feel_elvira.o ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${IOBJECTS} ${GCOBJECTS}
- mv feel_elvira.o ../Objs/${ARCH}-elvira.o
- echo
-
- feel_elvira.o: elvira
-
- feel: feel_elvira.o ${LISPOBJECTS}
- (cd LispSrc; make all-lisp.o)
- ecc -o feel ${LISPOBJECTS}
- echo
-
- reader:
- ${LEX} comp.lex
- ${YACC} test.yac
-
- # Sicko bytecode hacking
- # preprocess explicitly, then compile the result, after stripping out
- # cpp control codes. Ugh. Makes debugging easier though.
- interp.o: interpret.c bytecodes.h interpret.h
- -${CC} -E -c interpret.c ${FLAGS} \
- -DMACHINE_${MACHINE} \
- -DMODULE_PATH=\"${MODULE_PATH}\" \
- -DLOAD_PATH_NAME=\"${LOAD_PATH_NAME}\" \
- -DSEMAPHORES_${SEMAPHORES} \
- -DMAKE_DATE="\"${DATE}\"" \
- | grep -v '^#' | /usr/local/bin/indent > interp.c
- cc -c -O -inline interp.c
-
- .c.o:
- ${CC} -c $*.c ${FLAGS} \
- -DMACHINE_${MACHINE} \
- -DMODULE_PATH=\"${MODULE_PATH}\" \
- -DLOAD_PATH_NAME=\"${LOAD_PATH_NAME}\" \
- -DSEMAPHORES_${SEMAPHORES} \
- -DMAKE_DATE="\"${DATE}\""
-
-
-
-
- version: ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} ${DISTRIBCO} ${HDRS} ${KERNELLISP}
- rcsfreeze
-
- tar: ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} ${DISTRIBCO} \
- ${HDRS} ${KERNELLISP} ${ISOURCES} ${IHDRS}
- tar chf - ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} \
- ${DISTRIBCO} ${HDRS} ${KERNELLISP} ${ISOURCES} ${IHDRS} \
- | compress > you.tar.Z
-
- # Rather assumes that you have X...
-
- depend: ${SOURCES} ${HDRS} ${READERSOURCES} ${COSOURCES}
- makedepend -s "# DO NOT DELETE THIS LINE" -- ${FLAGS} -- ${SOURCES} ${COSOURCES}
-
- clean:
- rm ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} you
-
-
- ${MACHINE}-coroutine.o: ${MACHINE}-coroutine.s
- ${CC} -c ${MACHINE}-coroutine.s
-
- #if there is odd stuff below this line, remove it and do make depend.
- # if make depend fails don't worry. It only gets the header dependencies
- # right.
- # DO NOT DELETE THIS LINE
-